﻿//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//// 比较函数，用于比较两个字符串
//int compare_string(const void* a, const void* b) 
//{
//    const char* x = *(const char**)a;
//    const char* y = *(const char**)b;
//    return strcmp(x, y);
//}
//
//int main() {
//    char* strings[] = { "banana", "apple", "cherry", "date" };
//    int size = sizeof(strings) / sizeof(strings[0]);
//
//    // 使用qsort进行排序
//    qsort(strings, size, sizeof(char*), compare_string);
//
//    // 打印排序后的数组
//    for (int i = 0; i < size; i++) {
//        printf("%s ", strings[i]);
//    }
//    printf("\n");
//
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int aa[2][5] = { 10,9,8,7,6,5,4,3,2,1 };
//	int* ptr1 = (int*)(&aa + 1);
//	int* ptr2 = (int*)(*(aa + 1));
//	printf("%d,%d", *(ptr1 - 1), *(ptr2 - 1));
//	return 0;
//}


//strlen函数
#include<stdio.h>
#include<string.h>
#include<assert.h>
//int my_strlen(const char* str)
//{
//	int count = 0;
//	assert(str);
//	while (*str)
//	{
//		count++;
//		str++;
//	}
//	return count;
//}
//不能创建临时变量计数器
//int my_strlen(const char* str)
//{
//	assert(str);
//	if (*str == '\0')
//		return 0;
//	else
//		return 1 + my_strlen(str + 1);
//}

//指针-指针的⽅式
//int my_strlen(char* s)
//{
//	assert(s);
//	char* p = s;
//	while (*p != '\0')
//		p++;
//	return p - s;
//}
//int main()
//{
//	
//	char* arr = "abcdefgh" ;
//	int count = my_strlen(arr);
//	printf("%d ", count);
//	return 0;
//}
char* my_strstr(const char* str1, const char* str2)
{
	char* cp = (char*)str1;
	char* s1, * s2;
	if (!*str2)
		return((char*)str1);
	while (*cp)
	{
		s1 = cp;
		s2 = (char*)str2;
		while (*s1 && *s2 && !(*s1 - *s2))
			s1++, s2++;
		if (!*s2)
			return(cp);
		cp++;
	}
	return(NULL);
}

int main()
{
	char arr1[] = { "abcdef" };

	char arr2[20] = { "bc" };
    char* ret = my_strstr(arr1, arr2);
	printf("%s ",ret );
	return 0;
}